تهیه‌ی برنامه‌ی معتبر

کمپایل برنامه

متاسفانه کمپایلرهای مختلف از شیوه‌ها و استانداردهای خود استفاده می‌کنند که می‌تواند با استانداردهای زبان‌های برنامه‌نویسی هماهنگ نباشند. برنامه‌های دریافت شده هم به ناچار از یک کمپایلر استفاده می‌کند؛ بنابراین ملاک ارزیابی تمرینات خروجی گرفته شده از این کمپایلر است. کمپایلرهای به کار گرفته شده معمولا از کمپایلرهای gcc هستند که سازگاری بیشتری با سیستم عامل‌های مختلف و استانداردهای رسمی دارند. پس دقت کنید برنامه‌های شما بایستی با کمپایلر مصحح سازگاری داشته باشند. همچنین کلیه‌ی ویژگی‌هایی که از زبان‌های دیگر اضافه شده باشند یا قابلیت افزوده‌ی کمپایلر باشد و به طور کلی جزو استاندارد زبان برنامه‌نویسی نباشد، غیر فعال هستند.

به عنوان مثال برای زبان C برنامه‌ها با استاندارد ANSI C کمپایل خواهند شد و استفاده از کتابخانه‌های C++ و یا استفاده از Memory Garbage Collection که در کمپایلر gcc به عنوان افزونه اضافه شده است، ممکن نیست. چرا که جزو استاندارد ANSI C نیست. دقت کنید برنامه‌های شما از کتابخانه‌های مناسب استفاده کنند. برای مثال کتابخانه‌ای تحت عنوان conio.h در اختیار شما نیست. لیست برخی از کتابخانه‌های رایج به این شرح است:

کمپایلرهای gcc برای ویندوز از اینجا قابل دریافت هستند. در صورتی که این کمپایلر را در مسیر C:\mingw\ قرار دهید (extract کنید) از قسمت run در منوی Start با وارد کردن cmd.exe وارد خط فرمان Microsoft Windows شوید. در این محیط دستورات زیر نمونه‌ی یک کمپایل است:

cd C:\mingw\
bin\gcc.exe .\1.c -o .\o
maybe some errors or warnings ....
.\o

خط اول وارد مسیر mingw می‌شود. خط دوم کمپایلر gcc را اجرا می‌کند و به عنوان آرگومان اول آدرس فایل برنامه را می‌دهد. در این مثال فرض شده فایل 1.c در مسیر C:\mingw\ قرار دارد. اگر فایل در مسیر D:\t3\2.c قرار دارد؛ این مقدار دقیقا جایگزین می‌شود. قسمت بعد این خط مربوط مسیر فایل اجرایی ساخته شده توسط کمپایلر است. در صورتی که کمپایل با موفقیت انجام شود؛ فایل اجرایی این مثال از مسیر C:\mingw\o قابل بازیابی است. در غیر این صورت چند خط توضیح در مورد خطای برنامه داده می‌شود. خط آخر؛ برنامه‌ی کمپایل شده‌ی شما را اجرا می‌کند.

همچنین می‌توانید در هر مسیری که هستید به صورت گرافیکی فایل سورس برنامه را انتحاب کرده و بر روی برنامه‌ی کمپایلر (gcc.exe در اینجا) Drag & Drop کنید. فایل اجرایی در مسیر فایل ورودی ساخته می‌شود و می‌توانید آن را باز کنید.

چنانچه از کمپایلر خواسته شده استفاده نمی‌کنید، برای اطمینان از کمپایل شدن تمرینات خود حتما قبل از ارسال تمرین برنامه را با کمپایلر آنلاین تست کنید.

اجرای برنامه

مقدار زمان و حافظه‌ی تخصیص داده شده به برنامه‌ی شما محدود است. شما می‌توانید از فایل‌هایی که ارسال می‌کنید برای خواندن و نوشتن استفاده کنید. استفاده از دیگر فایل‌ها محدود شده است و نمی‌توانید به تمام دستورات و برنامه‌های موجود در سیستم دستیابی پیدا کنید. این محدودیت‌ها برای پاسخ تمرینات دریافت شده از شما غالبا مهم نیستند. تنها در نظر داشته باشید که فقط از فایل‌های ارسال شده در سری تمرین خودتان می‌توانید بدون محدودیت برای خواندن و نوشتن استفاده کنید و مجاز به انجام هر عملیاتی نیستید.

خاتمه‌‌ی برنامه

برنامه‌ی شما به مدت زمانی که توسط استاد تعیین می‌شود می‌تواند زمان سیستم را به خود اختصاص دهد. چنانچه در این مدت برنامه خاتمه پیدا نکند، به عنوان پاسخ صحیح شناخته نمی‌شود. دقت کنید منظور از خاتمه بسته شدن برنامه است و هرگز نباید به شیوه‌ای جلوی این عمل گرفته شود. مثلا برای برنامه‌های C نباید در انتهای برنامه با استفاده از system (pause); یا getchar(); برنامه را باز نگه دارید.

ارسال تمرینات

پیش از ارسال تمرینات بایستی در درس مربوطه عضو شده باشید. از قسمت دروس، با کلیک بر روی درس مورد درخواست عضویت خود را ثبت کنید.

membership request
توجه: ارسال تمرینات از قسمت تمرینات صورت می‌گیرد. ارسال فایل در قسمت کمپایلر آنلاین تنها برای تست برنامه‌های شما طراحی شده.
sending an exercise

زمان ارسال

شما مجاز هستید تا زمانی که به عنوان مهلت ارسال تمرینات معرفی می‌شود، پاسخ تمرینات را بفرستید. این زمان الزاما زمان تصحیح تمرینات نخواهد بود. بنابراین دقت کنید زمان تصحیح را با مهلت ارسال اشتباه نکنید.

sending time

فرمت ارسال

سری تمرینات بایستی در قالب یک فایل زیپ شده باشند. در این فایل محتویات برنامه‌های شما قرار دارند. به این صورت که بایستی برای هر تمرین نام فایل مربوطه به عنوان شماره‌ی تمرین و پسوند مناسب با تمرین انتخاب شود. به عنوان مثال فایلی با نام 2.c به عنوان پاسخ تمرین دوم برای زبان C ارزیابی می‌شود. بدیهی است چنانجه از نام دیگری برای این تمرین استفاده شود؛ تمرین تصحیح نخواهد شد. در Microsoft Windows می‌توانید از قسمت My Computer/Tools/Folder Options گزینه‌ی Hide extentions for known types را غیر فعال کنید. با نمایش پسوند فایل‌ها اطمینان حاصل کنید فایل‌ها با پسوند دیگری (مثلا 1.c.CPP) نام‌گذاری نشده اند.

فایل‌هایی که کمپایل می‌شوند (مثلا 5.cpp) هرگز نباید بعد از unzip شدن در پوشه‌ی دیگری قرار داشته باشند. به صورت پیش‌فرض زمانی که در Microsoft Windows از طریق کلیک راست بر روی یک پوشه و گزینه‌ی Send to zip archive عمل می‌کنید، محتویات پوشه بعد از unzip کردن قابل دسترسی نیستند و در پوشه‌ی مذکور قرار دارند. فایل Bad.zip فایل معتبری نیست:

unzip -t Bad.zip
Archive:  Bad.zip
    testing: t3/                      OK
    testing: t3/1.pas                 OK
    testing: t3/2.pas                 OK
    testing: t3/3.pas                 OK
No errors detected in compressed data of Bad.zip.

چرا که بعد از unzip شدن، فایل‌های پاسکال را در فولدر t3 قرار می‌دهد. برای حل این مشکل هنگام فشرده سازی با Microsoft Windows فایل ها را انتخاب کنید و سپس از Send to archive استفاده کنید. در صورتی که از winrar استفاده می‌کنید می‌تواند محتویات فایل zip را ببینید. در غیر این صورت با یک بار unzip کردن از صحت فایل اطمینان حاصل کنید. فایل Good.zip نمونه‌ی فایل تهیه شده با این روش است:

unzip -t Good.zip
Archive:  Good.zip
    testing: 1.pas                 OK
    testing: 2.pas                 OK
    testing: 3.pas                 OK
No errors detected in compressed data of Good.zip.
توجه: اگر تمرینات شما مطابق روشی که گفته شد تهیه نشده‌اند؛ تا مهلت تحویل تمرینات، می‌توانید دوباره تمرینات را ارسال کنید.
resend exercise

تصحیح تمرینات

برنامه‌های شما بر مبنای مقایسه خروجی تصحیح می‌شوند. سعی کنید خروجی را دقیقا به صورتی که از شما خواسته شده است طراحی کنید. هنگامی که برنامه‌ی شما پیغامی چاپ می‌کند که مد نظر مصحح نیست؛ نمره‌ای به دست نمی‌آورید. برای مثال اگر از شما خواسته شده است که برنامه‌ای بنویسید تا عددی دریافت کند و عملیاتی روی آن اجرا کند و خروجی را چاپ کند؛ برنامه‌ی شما بایستی تنها عدد خروجی را نمایش دهد و خاتمه پیدا کند. هر پیغامی که در این میان نمایش داده شود و مورد نظر مصحح نباشد باعث از دست رفتن نمره‌ی شما می‌شود. مثلا در این مثال نباید پیغام "Please enter your number" یا هر چیز دیگری چاپ شود، چرا که چنین چیزی از شما درخواست نشده است.

چنین حساسیت‌هایی برای تعداد خطوط خالی، استفاده از کارکترهای فاصله در ابتدا یا انتهای خط، حساسیت نسب به حروف بزرگ و کوچک و مانند این‌ها هم وجود دارد ولی معمولا به صورتی متناسب با تمرین تنظیم می‌شوند که تمرینات بیشتری به عنوان پاسخ صحیح تلقی شوند.